package net.lcheng.service;

import net.lcheng.commons.utils.PageList;
import net.lcheng.model.PProduct;
import net.lcheng.vo.ProductConditionsSelectModel;

import java.util.List;

/**
 * Created by LV on 2016/7/1.
 */
public interface ProductService {

    //发布产品
    int addProduct(PProduct product);

    //发布商品（重构）
    int publishProduct(PProduct product);

    //查询所有商品
    PageList<PProduct> getProductListAll(int shopId,int pageSize,int pageIndex);

    //查询所有商品
    List<PProduct> getProductListAll(int shopId);

    //根据销售状态查找产品列表
    PageList<PProduct> getProductListByStatus(int shopId,int status, int pageSize,int pageIndex);

    //根据销售状态查找产品列表
    List<PProduct> getProductListByStatus(int shopId,int status);

    //改变销售状态
    int updateProductStatus(String productId,int status);

    //改变店铺推荐状态
    int updateProductRecommendStatus(String productId,int status);

    //根据主键查询商品
    PProduct getProductByPrimaryKey(String productId);

    //由主键更改产品
    int updateProductByPrimaryKey(PProduct product);

    //多条件查询商品
    PageList<PProduct> getProductByConditions(int shopId,ProductConditionsSelectModel conditions,int pageSize,int pageIndex);

    /**
     * 变更产品的分类
     * @param productId 目标产品Id
     * @param categoryId 需要变更的分类Id
     * @return int
     */
    int changeProductShopCategory(String productId,String categoryId);
}
